01. Google BigQuery

BigQuery란?

  • Google에서 드레멜 엔진을 사용해 만든 페타 바이트 규모의 저비용 데이터 웨어하우스입니다
  • 구글에서 관리해주기 때문에! 저희는 별도의 서버나 물리적 하드웨어를 관리할 필요가 없습니다 ( SaaS )
  • 일반적인 rdb나 noSQL보다 속도가 월등히 빠르며, 몇초 안에 TB를 스캔할 수 있습니다. Google Cloud Storage에서 데이터를 읽어 분석할 수 있습니다
  • 데이터 저장 및 컴퓨팅의 개념을 분리해 독립적으로 비용을 지불할 수 있습니다
  • 웹 UI 혹은 Command Line tool을 사용해 BigQuery를 이용할 수 있으며 Rest API와 클라이언트 라이브러리가 준비되어 있습니다 ( python, java, c#, go, node.js, php, ruby )

  • Firebase 와 연동해서 사용할 경우 100000% 정말 좋습니다! ( 모든 데이터가 누락없이 쌓이는데, 신경쓸 필요가 없어요! )
  • Legacy SQL과 Standard SQL 2가지 방식으로 쿼리를 날릴 수 있습니다 ( 세부 문법이 살짝 달라요 )
  • key, index가 따로 존재하지 않고 Full Scan을 합니다
  • Select할 때, Column base로 비용을 부과합니다

  • Third Party 도구들과 호환됩니다 ( Tableau, Google Analytics 360 suite )

BigQuery 비용

  • BigQuery는 저장 비용과( Storage ) 쿼리 비용 ( Query )이 따로 부과됩니다
구분 비용 설명
Storage \$0.02 per 1GB 매월 첫 10GB는 무료
Long Term Storage \$0.01 per 1GB 90일간 Edit이 없는 경우(append, overwrite, streaming 같은 행위) Storage의 비용의 1/2
Queries \$5 per 1TB 매월 첫 1TB는 무료이며, 정액 요금제(Flat-rate Pricing)도 존재
Streaming Inserts \$0.05 per 1GB streamed data일 경우 비용 부과
Loading data 무료 Data load 비용 무료
Copying data 무료 Table Copy 비용 무료 ( 그러나 저장 비용은 부과 )
Exporting data 무료 Data Export 비용 무료 (to gcp)

BigQuery 시작

  1. Google Cloud 회원 가입
  2. Google 로그인
  3. Project 생성 및 선택

    단, 처음에 체험판 등록하면 300$ 제공합니다

  4. BigQuery API 등록

BigQuery UI console

  • 위 화면은 BigQuery에 처음 진입하면 나오는 화면입니다
  • 개인적으로 디자인은 정말 아무것도 없어 보입니다(..)
  • 'COMPOSE QUERY'를 누르면 쿼리를 날릴 수 있는 화면이 보입니다!

1) Navigation bar

  • COMPOSE QUERY : 이 버튼을 누르면 쿼리를 날릴 수 있는 창이 나타납니다! (우측과 같은 Query Editor가 생겨요)
  • Query History : 조회했던 쿼리가 기록이 나타납니다. 무한정으로 쿼리 History를 볼 수 있는것은 아니에요!
  • Job History : Job 작업의 기록이 나타납니다. Job은 load data, export data(table), copy data(table)
  • My Project라고 써있는 곳은 'Project' 부분입니다! 현재 저는 4개의 Dataset이 존재합니다
  • Public Datasets : BigQuery에서 사용할 수 있는 무료 Datasets입니다! 연습하기에 정말 좋은 자료들입니다

2) Query Editor

  • New Query라고 써있는 곳은 쿼리의 이름을 나타냅니다. 그 아래의 흰 공간에서 Query를 입력할 수 있습니다
  • 우측의 UDF Editor는 java script로 사용자 정의 함수( User Define Function )를 만들 수 있습니다
  • Run Query : 쿼리를 실행하는 버튼으로 단축키는 command(ctrl) + Enter입니다
  • Save View : 쿼리 결과(View)를 저장하는 버튼으로 legacy SQL을 사용할 경우 가능합니다(개인적으론 Save View보단 다른 table로 저장하는 것을 선호해요)
  • Format Query : 형식에 맞게 자동으로 수정해줍니다
  • Show Options : 다양한 옵션 설정이 가능합니다. 예를 들어 쿼리 결과를 Table로 저장하는 것, 거대한 Result도 허락하는 것, Query Cashing 유무, Legacy / Standard SQL 선택 등이 가능합니다

3) Querys list

  • 이 부분은 Query history를 누를 경우 생깁니다. History가 나오고 Filter로 검색해볼 수 있습니다
  • Datasets의 Table을 클릭할 경우, 이 부분에 Table에 대한 정보가 나타납니다
  • Run Query를 실행한 경우 이 부분에 쿼리 결과가 나타납니다

Table Detail

  • Schema : 해당 테이블의 Schema(Column 이름, 타입, 설명)가 있습니다
  • Details : 해당 테이블과 관련된 정보가 포함되어 있습니다(Table ID, Size, Number of Rows, Creation Time, Labels)
  • Preview : 해당 테이블에 데이터가 어떻게 적재되어있는지 볼 수 있습니다!! 유용한 기능입니다
  • Refresh : 새로고침
  • Query Table : 클릭하면 테이블에 쿼리를 날릴 수 있는 기본구조가 구성됩니다
  • Copy Table : 테이블을 Copy
  • Export Table : 테이블을 Export합니다. CSV, Json, Avro로 가능하며 GZIP으로 압축할 수 있습니다 (저장하는 공간은 Google Cloud Storage)
  • Delete Table : 테이블 삭제

Query Result

  • Results : 쿼리의 결과가 나타나는 공간입니다
  • Explanation : 쿼리의 단계별 연산에 대한 설명이 적혀있습니다
  • Job Information : 쿼리 Job에 대한 정보가 기록되어 있습니다
  • Save as Table : 지정하는 Table로 쿼리의 결과를 저장합니다
  • Save to Google Sheets : 구글 스프레드시트로 결과를 저장합니다. 저는 데이터 요청이 있을 경우, 대부분 스프레드시트로 공유합니다!

Keyboard shortcuts

Windows/Linux Mac Action
Ctrl + Enter Cmd + Enter 현재 Query를 실행
Tab Tab 자동 완성기능
Ctrl Cmd Table 이름을 Highlight
Ctrl + / Cmd + / 현재 줄 주석처리
Ctrl + Shift + F Cmd + Shift + F Query Format 맞추기

In [ ]: